1. Field of the Invention
The present invention relates to a communication apparatus, a communication method, and a computer program, which perform data transmission in compliance with the second-layer protocol of an OSI (Open Systems Interconnection) reference model, and more particularly, to a communication apparatus, a communication method, and a computer program, which are capable of preventing a decrease in the data transmission speed in the second-layer network environment in which the order of arrived packets, which are rarely lost, is predicted to be frequently interchanged.
2. Description of the Related Art
According to an OSI reference model that is a design principle of a network structure that has been established by the International Organization for Standardization (ISO), a communication function is divided into seven layers. Among the layers, a data link layer as the second layer corresponds to a protocol that defines transmission and reception of signals between communication apparatuses that are directly or adjacently connected to each other and requests a service for a physical layer that is configured directly below the data link layer in response to a service request such as TCP/IP from a higher layer. Ethernet (registered trademark) and a token ring are representative examples of the second-layer protocol.
In addition, the second layer is divided into a logical link control (LLC) sublayer and a media access control (MAC) sublayer that is in the lower level. A route control function is not present in the second layer, and the second-layer network can be paraphrased as a range in which a MAC address can be acquired through an ARP (Address Resolution Protocol) command within the same network address or a network within a broadcast domain.
In RFC (Request For Comment) 793, technical specifications of TCP communication are represented. The TCP communication assures reliable data transmission by performing appropriate flow control such as a retransmission request for packet loss, interchange of the order, or the like at the time of the transmission. Accordingly, even in the second-layer network environment in which the order of the arrived packets is predicted to be frequently interchanged, an appropriate process is performed in accordance with the TCP protocol, and accordingly, an application is provided with data in the right order.
In addition, according to the TCP, there are two retransmission functions, which are defined in RFC2851 “TCP Congestion Control”, as below.
(1) A TCP receiver SHOULD send an immediate duplicate ACK when ban out-of-order segment arrives.
(2) The TCP sender SHOULD use the “fast retransmit” algorithm to detect and repair loss, based on incoming duplicate ACKs. The fast retransmit algorithm uses the arrival of 3 duplicate ACKs (4 identical ACKs without the arrival of any of other intervening packets) as an indication that a segment has been lost.
This fast retransmit function is a very effective tool for performing retransmission due to a packet loss. It is rare that a packet is lost in the second-layer network, that is, communication within the same network address. However, within the second-layer network, while a packet is not lost, the order of packet is operated so as to be frequently interchanged, the TCP receiver side transmits an unnecessary Duplicate ACK, and the TCP sender performs an unnecessary retransmission process in response thereto. As a result, the network performance is remarkably degraded.
For example, a response returning method is proposed in which the number of processes of ACKs is decreased by collecting several ACKs in a buffer and then transmitting the ACKs (for example, see JP-A-2000-259525). However, this method is assumed to be performed inside the TCP, and, in order to realize the method, it is necessary to change a TCP/IP protocol stack. Since the source of the TCP/IP protocol stack may not be open depending on the OS vendor, there are many cases where it is difficult to modify the TCP/IP protocol stack.